import pymysql

# 数据库配置
DB_CONFIG = {
    'host': 'localhost',
    'user': 'root',
    'password': 'lmj1764432683',
    'database': 'night_snack_ordering_system',
    'port': 3306
}

try:
    # 连接到数据库
    print("正在连接到数据库...")
    conn = pymysql.connect(
        host=DB_CONFIG['host'],
        user=DB_CONFIG['user'],
        password=DB_CONFIG['password'],
        database=DB_CONFIG['database'],
        port=DB_CONFIG['port']
    )
    cursor = conn.cursor()
    print("成功连接到数据库！")
    
    # 检查用户表是否存在
    print("\n检查用户表是否存在:")
    cursor.execute("SHOW TABLES LIKE 'user'")
    if cursor.fetchone():
        print("用户表存在！")
        
        # 查询用户数据
        print("\n查询用户表中的所有记录:")
        cursor.execute("SELECT user_id, username, password, role, name, phone FROM user")
        users = cursor.fetchall()
        
        if users:
            print(f"找到 {len(users)} 个用户记录:")
            for user in users:
                print(f"用户ID: {user[0]}, 用户名: {user[1]}, 密码: {user[2]}, 角色: {user[3]}, 姓名: {user[4]}, 手机号: {user[5]}")
        else:
            print("用户表为空。")
    else:
        print("用户表不存在。")
    
    # 检查菜品表是否存在
    print("\n检查菜品表是否存在:")
    cursor.execute("SHOW TABLES LIKE 'food'")
    if cursor.fetchone():
        print("菜品表存在！")
        
        # 查询菜品数据
        cursor.execute("SELECT COUNT(*) FROM food")
        count = cursor.fetchone()[0]
        print(f"菜品表中有 {count} 条记录。")
        
        # 显示前3条菜品记录
        if count > 0:
            print("\n前3条菜品记录:")
            cursor.execute("SELECT food_id, food_name, price, category FROM food LIMIT 3")
            foods = cursor.fetchall()
            for food in foods:
                print(f"菜品ID: {food[0]}, 菜品名称: {food[1]}, 价格: {food[2]}, 分类: {food[3]}")
    else:
        print("菜品表不存在。")
    
    # 检查订单表是否存在
    print("\n检查订单表是否存在:")
    cursor.execute("SHOW TABLES LIKE 'order'")
    if cursor.fetchone():
        print("订单表存在！")
    else:
        print("订单表不存在。")
    
    # 检查订单详情表是否存在
    print("\n检查订单详情表是否存在:")
    cursor.execute("SHOW TABLES LIKE 'order_detail'")
    if cursor.fetchone():
        print("订单详情表存在！")
    else:
        print("订单详情表不存在。")
    
    # 测试UserDB类的登录功能
    print("\n尝试导入UserDB类进行登录测试:")
    try:
        # 尝试导入UserDB类
        from backend.database.user_db import UserDB
        print("成功导入UserDB类！")
        
        # 创建UserDB实例
        user_db = UserDB()
        print("成功创建UserDB实例！")
        
        # 尝试直接查询用户
        print("\n尝试使用get_user_by_username方法查询用户:")
        user = user_db.get_user_by_username('student1')
        if user:
            print(f"查询成功！用户对象: {user.__class__.__name__}")
            print(f"用户名: {user.username}, 密码: {user.password}, 角色: {user.role}")
            
            # 测试登录验证（通过比较密码）
            print("\n测试登录验证:")
            if user.password == 'password123':
                print("登录成功！用户名和密码匹配")
            else:
                print("登录失败: 密码不匹配")
        else:
            print("查询失败: 未找到用户")
            
    except Exception as e:
        print(f"导入或使用UserDB类时出错: {e}")
        import traceback
        traceback.print_exc()

except Exception as e:
    print(f"数据库操作失败: {e}")
    import traceback
    traceback.print_exc()
finally:
    if 'cursor' in locals():
        cursor.close()
    if 'conn' in locals():
        conn.close()
    
print("\n数据验证脚本执行完毕。")